// starting begin PrepareAmerican ;
   0: CALL 265 0 0
// PrepareHero1 ;
   4: CALL 3157 0 0
// AddComHold ( PULK_01 ) ;
   8: LD_INT 448
  10: PPUSH
  11: CALL_OW 200
// InGameOn ;
  15: CALL_OW 8
// ResAllTechs ( 1 , lab2 ) ;
  19: LD_INT 1
  21: PPUSH
  22: LD_INT 283
  24: PPUSH
  25: CALL 3240 0 2
// ResAllTechs ( 4 , lab3 ) ;
  29: LD_INT 4
  31: PPUSH
  32: LD_INT 381
  34: PPUSH
  35: CALL 3240 0 2
// center = 1 ;
  39: LD_ADDR_EXP 7
  43: PUSH
  44: LD_INT 1
  46: ST_TO_ADDR
// ComHold ( PULK_01 ) ;
  47: LD_INT 448
  49: PPUSH
  50: CALL_OW 140
// Say ( OWChyba , A1 ) ;
  54: LD_EXP 6
  58: PPUSH
  59: LD_STRING A1
  61: PPUSH
  62: CALL_OW 88
// ComEnterUnit ( OWChyba , f1 ) ;
  66: LD_EXP 6
  70: PPUSH
  71: LD_INT 447
  73: PPUSH
  74: CALL_OW 120
// AddComMoveToArea ( OWChyba , Area37 ) ;
  78: LD_EXP 6
  82: PPUSH
  83: LD_INT 6
  85: PPUSH
  86: CALL_OW 173
// AddComMoveToArea ( OWChyba , WYSIADKA ) ;
  90: LD_EXP 6
  94: PPUSH
  95: LD_INT 4
  97: PPUSH
  98: CALL_OW 173
// end ;
 102: END
// every 0 0$01 trigger IsInArea ( OWChyba , WYSIADKA ) do
 103: LD_EXP 6
 107: PPUSH
 108: LD_INT 4
 110: PPUSH
 111: CALL_OW 308
 115: IFFALSE 264
 117: GO 119
 119: DISABLE
// begin ComExitVehicle ( OWChyba ) ;
 120: LD_EXP 6
 124: PPUSH
 125: CALL_OW 121
// Wait ( 0 0$1 ) ;
 129: LD_INT 35
 131: PPUSH
 132: CALL_OW 67
// AddComMoveXY ( OWChyba , 37 , 11 ) ;
 136: LD_EXP 6
 140: PPUSH
 141: LD_INT 37
 143: PPUSH
 144: LD_INT 11
 146: PPUSH
 147: CALL_OW 171
// AddComHold ( OWChyba ) ;
 151: LD_EXP 6
 155: PPUSH
 156: CALL_OW 200
// AddComTurnUnit ( OWChyba , PULK_01 ) ;
 160: LD_EXP 6
 164: PPUSH
 165: LD_INT 448
 167: PPUSH
 168: CALL_OW 179
// AddComTurnUnit ( PULK_01 , OWChyba ) ;
 172: LD_INT 448
 174: PPUSH
 175: LD_EXP 6
 179: PPUSH
 180: CALL_OW 179
// Say ( OWChyba , A2 ) ;
 184: LD_EXP 6
 188: PPUSH
 189: LD_STRING A2
 191: PPUSH
 192: CALL_OW 88
// Say ( PULK_01 , A3 ) ;
 196: LD_INT 448
 198: PPUSH
 199: LD_STRING A3
 201: PPUSH
 202: CALL_OW 88
// Say ( OWChyba , A4 ) ;
 206: LD_EXP 6
 210: PPUSH
 211: LD_STRING A4
 213: PPUSH
 214: CALL_OW 88
// Say ( PULK_01 , A5 ) ;
 218: LD_INT 448
 220: PPUSH
 221: LD_STRING A5
 223: PPUSH
 224: CALL_OW 88
// SaveCharacters ( PULK_01 , PULK_01 ) ;
 228: LD_INT 448
 230: PPUSH
 231: LD_STRING PULK_01
 233: PPUSH
 234: CALL_OW 38
// SaveCharacters ( OWChyba , OWChyba ) ;
 238: LD_EXP 6
 242: PPUSH
 243: LD_STRING OWChyba
 245: PPUSH
 246: CALL_OW 38
// ChangeMap ( 06 , %_cont ) ;
 250: LD_INT 6
 252: PPUSH
 253: LD_STRING %_cont
 255: PPUSH
 256: CALL_OW 340
// resetfog ;
 260: CALL_OW 335
// end ; end_of_file
 264: END
// export comp_engs3 , comp_engs2 , AmericanPerson , Am1_Turret , Am2_Turret ; export function PrepareAmerican ; var am_turret , i , un , b , x1 , y1 , k , l , level , am_depot1 , comp_units , am_depot2 , am_fab , am_lab ; begin
 265: LD_INT 0
 267: PPUSH
 268: PPUSH
 269: PPUSH
 270: PPUSH
 271: PPUSH
 272: PPUSH
 273: PPUSH
 274: PPUSH
 275: PPUSH
 276: PPUSH
 277: PPUSH
 278: PPUSH
 279: PPUSH
 280: PPUSH
 281: PPUSH
// Am1_Turret := FilterUnitsInArea ( SIDE1 , [ [ f_side , 1 ] , [ f_btype , b_bunker ] ] ) ;
 282: LD_ADDR_EXP 4
 286: PUSH
 287: LD_INT 1
 289: PPUSH
 290: LD_INT 22
 292: PUSH
 293: LD_INT 1
 295: PUSH
 296: EMPTY
 297: LIST
 298: LIST
 299: PUSH
 300: LD_INT 30
 302: PUSH
 303: LD_INT 32
 305: PUSH
 306: EMPTY
 307: LIST
 308: LIST
 309: PUSH
 310: EMPTY
 311: LIST
 312: LIST
 313: PPUSH
 314: CALL_OW 70
 318: ST_TO_ADDR
// uc_side = 1 ;
 319: LD_ADDR_OWVAR 20
 323: PUSH
 324: LD_INT 1
 326: ST_TO_ADDR
// uc_nation = 1 ;
 327: LD_ADDR_OWVAR 21
 331: PUSH
 332: LD_INT 1
 334: ST_TO_ADDR
// hc_gallery =  ;
 335: LD_ADDR_OWVAR 33
 339: PUSH
 340: LD_STRING 
 342: ST_TO_ADDR
// hc_name =  ;
 343: LD_ADDR_OWVAR 26
 347: PUSH
 348: LD_STRING 
 350: ST_TO_ADDR
// for i in Am1_Turret do
 351: LD_ADDR_VAR 0 3
 355: PUSH
 356: LD_EXP 4
 360: PUSH
 361: FOR_IN
 362: IFFALSE 550
// begin if IsInUnit ( i ) = 0 then
 364: LD_VAR 0 3
 368: PPUSH
 369: CALL_OW 310
 373: PUSH
 374: LD_INT 0
 376: EQUAL
 377: IFFALSE 548
// begin Level = [ 3 , 2 , 1 ] [ Difficulty ] ;
 379: LD_ADDR_VAR 0 10
 383: PUSH
 384: LD_INT 3
 386: PUSH
 387: LD_INT 2
 389: PUSH
 390: LD_INT 1
 392: PUSH
 393: EMPTY
 394: LIST
 395: LIST
 396: LIST
 397: PUSH
 398: LD_OWVAR 67
 402: ARRAY
 403: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 404: LD_ADDR_OWVAR 29
 408: PUSH
 409: LD_INT 9
 411: PPUSH
 412: LD_INT 11
 414: PPUSH
 415: CALL_OW 12
 419: PUSH
 420: LD_INT 10
 422: PPUSH
 423: LD_INT 12
 425: PPUSH
 426: CALL_OW 12
 430: PUSH
 431: EMPTY
 432: LIST
 433: LIST
 434: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 1 , 3 ) , Rand ( 1 , 2 ) , Rand ( 1 , 2 ) ] ;
 435: LD_ADDR_OWVAR 31
 439: PUSH
 440: LD_VAR 0 10
 444: PUSH
 445: LD_INT 1
 447: PPUSH
 448: LD_INT 3
 450: PPUSH
 451: CALL_OW 12
 455: PUSH
 456: LD_INT 1
 458: PPUSH
 459: LD_INT 2
 461: PPUSH
 462: CALL_OW 12
 466: PUSH
 467: LD_INT 1
 469: PPUSH
 470: LD_INT 2
 472: PPUSH
 473: CALL_OW 12
 477: PUSH
 478: EMPTY
 479: LIST
 480: LIST
 481: LIST
 482: LIST
 483: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 484: LD_ADDR_OWVAR 27
 488: PUSH
 489: LD_INT 1
 491: PPUSH
 492: LD_INT 2
 494: PPUSH
 495: CALL_OW 12
 499: ST_TO_ADDR
// hc_class = 1 ;
 500: LD_ADDR_OWVAR 28
 504: PUSH
 505: LD_INT 1
 507: ST_TO_ADDR
// un := CreateHuman ;
 508: LD_ADDR_VAR 0 4
 512: PUSH
 513: CALL_OW 44
 517: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 518: LD_VAR 0 4
 522: PPUSH
 523: LD_VAR 0 3
 527: PPUSH
 528: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
 532: LD_ADDR_EXP 3
 536: PUSH
 537: LD_EXP 3
 541: PUSH
 542: LD_VAR 0 4
 546: ADD
 547: ST_TO_ADDR
// end ; end ;
 548: GO 361
 550: POP
 551: POP
// Am2_Turret := FilterUnitsInArea ( SIDE2 , [ [ f_side , 4 ] , [ f_btype , b_bunker ] ] ) ;
 552: LD_ADDR_EXP 5
 556: PUSH
 557: LD_INT 2
 559: PPUSH
 560: LD_INT 22
 562: PUSH
 563: LD_INT 4
 565: PUSH
 566: EMPTY
 567: LIST
 568: LIST
 569: PUSH
 570: LD_INT 30
 572: PUSH
 573: LD_INT 32
 575: PUSH
 576: EMPTY
 577: LIST
 578: LIST
 579: PUSH
 580: EMPTY
 581: LIST
 582: LIST
 583: PPUSH
 584: CALL_OW 70
 588: ST_TO_ADDR
// uc_side = 4 ;
 589: LD_ADDR_OWVAR 20
 593: PUSH
 594: LD_INT 4
 596: ST_TO_ADDR
// uc_nation = 1 ;
 597: LD_ADDR_OWVAR 21
 601: PUSH
 602: LD_INT 1
 604: ST_TO_ADDR
// hc_gallery =  ;
 605: LD_ADDR_OWVAR 33
 609: PUSH
 610: LD_STRING 
 612: ST_TO_ADDR
// hc_name =  ;
 613: LD_ADDR_OWVAR 26
 617: PUSH
 618: LD_STRING 
 620: ST_TO_ADDR
// for i in Am2_Turret do
 621: LD_ADDR_VAR 0 3
 625: PUSH
 626: LD_EXP 5
 630: PUSH
 631: FOR_IN
 632: IFFALSE 801
// begin if IsInUnit ( i ) = 0 then
 634: LD_VAR 0 3
 638: PPUSH
 639: CALL_OW 310
 643: PUSH
 644: LD_INT 0
 646: EQUAL
 647: IFFALSE 799
// begin hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 649: LD_ADDR_OWVAR 29
 653: PUSH
 654: LD_INT 9
 656: PPUSH
 657: LD_INT 11
 659: PPUSH
 660: CALL_OW 12
 664: PUSH
 665: LD_INT 10
 667: PPUSH
 668: LD_INT 12
 670: PPUSH
 671: CALL_OW 12
 675: PUSH
 676: EMPTY
 677: LIST
 678: LIST
 679: ST_TO_ADDR
// hc_skills = [ Rand ( 5 , 6 ) , Rand ( 1 , 3 ) , Rand ( 1 , 2 ) , Rand ( 1 , 2 ) ] ;
 680: LD_ADDR_OWVAR 31
 684: PUSH
 685: LD_INT 5
 687: PPUSH
 688: LD_INT 6
 690: PPUSH
 691: CALL_OW 12
 695: PUSH
 696: LD_INT 1
 698: PPUSH
 699: LD_INT 3
 701: PPUSH
 702: CALL_OW 12
 706: PUSH
 707: LD_INT 1
 709: PPUSH
 710: LD_INT 2
 712: PPUSH
 713: CALL_OW 12
 717: PUSH
 718: LD_INT 1
 720: PPUSH
 721: LD_INT 2
 723: PPUSH
 724: CALL_OW 12
 728: PUSH
 729: EMPTY
 730: LIST
 731: LIST
 732: LIST
 733: LIST
 734: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 735: LD_ADDR_OWVAR 27
 739: PUSH
 740: LD_INT 1
 742: PPUSH
 743: LD_INT 2
 745: PPUSH
 746: CALL_OW 12
 750: ST_TO_ADDR
// hc_class = 1 ;
 751: LD_ADDR_OWVAR 28
 755: PUSH
 756: LD_INT 1
 758: ST_TO_ADDR
// un := CreateHuman ;
 759: LD_ADDR_VAR 0 4
 763: PUSH
 764: CALL_OW 44
 768: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 769: LD_VAR 0 4
 773: PPUSH
 774: LD_VAR 0 3
 778: PPUSH
 779: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
 783: LD_ADDR_EXP 3
 787: PUSH
 788: LD_EXP 3
 792: PUSH
 793: LD_VAR 0 4
 797: ADD
 798: ST_TO_ADDR
// end ; end ;
 799: GO 631
 801: POP
 802: POP
// for i in fabryka1 do
 803: LD_ADDR_VAR 0 3
 807: PUSH
 808: LD_INT 375
 810: PUSH
 811: FOR_IN
 812: IFFALSE 1062
// begin l = 0 ;
 814: LD_ADDR_VAR 0 9
 818: PUSH
 819: LD_INT 0
 821: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
 822: LD_VAR 0 3
 826: PPUSH
 827: CALL_OW 310
 831: PUSH
 832: LD_INT 0
 834: EQUAL
 835: IFFALSE 1060
// begin Level = [ 5 , 5 , 5 ] [ Difficulty ] ;
 837: LD_ADDR_VAR 0 10
 841: PUSH
 842: LD_INT 5
 844: PUSH
 845: LD_INT 5
 847: PUSH
 848: LD_INT 5
 850: PUSH
 851: EMPTY
 852: LIST
 853: LIST
 854: LIST
 855: PUSH
 856: LD_OWVAR 67
 860: ARRAY
 861: ST_TO_ADDR
// repeat begin uc_side = 4 ;
 862: LD_ADDR_OWVAR 20
 866: PUSH
 867: LD_INT 4
 869: ST_TO_ADDR
// uc_nation = 1 ;
 870: LD_ADDR_OWVAR 21
 874: PUSH
 875: LD_INT 1
 877: ST_TO_ADDR
// hc_gallery =  ;
 878: LD_ADDR_OWVAR 33
 882: PUSH
 883: LD_STRING 
 885: ST_TO_ADDR
// hc_name =  ;
 886: LD_ADDR_OWVAR 26
 890: PUSH
 891: LD_STRING 
 893: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 894: LD_ADDR_OWVAR 29
 898: PUSH
 899: LD_INT 9
 901: PPUSH
 902: LD_INT 11
 904: PPUSH
 905: CALL_OW 12
 909: PUSH
 910: LD_INT 10
 912: PPUSH
 913: LD_INT 12
 915: PPUSH
 916: CALL_OW 12
 920: PUSH
 921: EMPTY
 922: LIST
 923: LIST
 924: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Level , Rand ( 0 , 1 ) ] ;
 925: LD_ADDR_OWVAR 31
 929: PUSH
 930: LD_INT 0
 932: PPUSH
 933: LD_INT 3
 935: PPUSH
 936: CALL_OW 12
 940: PUSH
 941: LD_INT 0
 943: PPUSH
 944: LD_INT 1
 946: PPUSH
 947: CALL_OW 12
 951: PUSH
 952: LD_VAR 0 10
 956: PUSH
 957: LD_INT 0
 959: PPUSH
 960: LD_INT 1
 962: PPUSH
 963: CALL_OW 12
 967: PUSH
 968: EMPTY
 969: LIST
 970: LIST
 971: LIST
 972: LIST
 973: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 974: LD_ADDR_OWVAR 27
 978: PUSH
 979: LD_INT 1
 981: PPUSH
 982: LD_INT 2
 984: PPUSH
 985: CALL_OW 12
 989: ST_TO_ADDR
// hc_class = 3 ;
 990: LD_ADDR_OWVAR 28
 994: PUSH
 995: LD_INT 3
 997: ST_TO_ADDR
// un = CreateHuman ;
 998: LD_ADDR_VAR 0 4
1002: PUSH
1003: CALL_OW 44
1007: ST_TO_ADDR
// PlaceHumanInUnit ( un , fabryka1 ) ;
1008: LD_VAR 0 4
1012: PPUSH
1013: LD_INT 375
1015: PPUSH
1016: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
1020: LD_ADDR_EXP 3
1024: PUSH
1025: LD_EXP 3
1029: PUSH
1030: LD_VAR 0 4
1034: ADD
1035: ST_TO_ADDR
// l = l + 1 ;
1036: LD_ADDR_VAR 0 9
1040: PUSH
1041: LD_VAR 0 9
1045: PUSH
1046: LD_INT 1
1048: PLUS
1049: ST_TO_ADDR
// end until l = 4 ;
1050: LD_VAR 0 9
1054: PUSH
1055: LD_INT 4
1057: EQUAL
1058: IFFALSE 862
// end ; end ;
1060: GO 811
1062: POP
1063: POP
// for i in lab1 do
1064: LD_ADDR_VAR 0 3
1068: PUSH
1069: LD_INT 278
1071: PUSH
1072: FOR_IN
1073: IFFALSE 1323
// begin l = 0 ;
1075: LD_ADDR_VAR 0 9
1079: PUSH
1080: LD_INT 0
1082: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1083: LD_VAR 0 3
1087: PPUSH
1088: CALL_OW 310
1092: PUSH
1093: LD_INT 0
1095: EQUAL
1096: IFFALSE 1321
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
1098: LD_ADDR_VAR 0 10
1102: PUSH
1103: LD_INT 4
1105: PUSH
1106: LD_INT 4
1108: PUSH
1109: LD_INT 4
1111: PUSH
1112: EMPTY
1113: LIST
1114: LIST
1115: LIST
1116: PUSH
1117: LD_OWVAR 67
1121: ARRAY
1122: ST_TO_ADDR
// repeat begin uc_side = 1 ;
1123: LD_ADDR_OWVAR 20
1127: PUSH
1128: LD_INT 1
1130: ST_TO_ADDR
// uc_nation = 1 ;
1131: LD_ADDR_OWVAR 21
1135: PUSH
1136: LD_INT 1
1138: ST_TO_ADDR
// hc_gallery =  ;
1139: LD_ADDR_OWVAR 33
1143: PUSH
1144: LD_STRING 
1146: ST_TO_ADDR
// hc_name =  ;
1147: LD_ADDR_OWVAR 26
1151: PUSH
1152: LD_STRING 
1154: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1155: LD_ADDR_OWVAR 29
1159: PUSH
1160: LD_INT 9
1162: PPUSH
1163: LD_INT 11
1165: PPUSH
1166: CALL_OW 12
1170: PUSH
1171: LD_INT 10
1173: PPUSH
1174: LD_INT 12
1176: PPUSH
1177: CALL_OW 12
1181: PUSH
1182: EMPTY
1183: LIST
1184: LIST
1185: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Rand ( 1 , 2 ) , Level ] ;
1186: LD_ADDR_OWVAR 31
1190: PUSH
1191: LD_INT 0
1193: PPUSH
1194: LD_INT 3
1196: PPUSH
1197: CALL_OW 12
1201: PUSH
1202: LD_INT 0
1204: PPUSH
1205: LD_INT 1
1207: PPUSH
1208: CALL_OW 12
1212: PUSH
1213: LD_INT 1
1215: PPUSH
1216: LD_INT 2
1218: PPUSH
1219: CALL_OW 12
1223: PUSH
1224: LD_VAR 0 10
1228: PUSH
1229: EMPTY
1230: LIST
1231: LIST
1232: LIST
1233: LIST
1234: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1235: LD_ADDR_OWVAR 27
1239: PUSH
1240: LD_INT 1
1242: PPUSH
1243: LD_INT 2
1245: PPUSH
1246: CALL_OW 12
1250: ST_TO_ADDR
// hc_class = 4 ;
1251: LD_ADDR_OWVAR 28
1255: PUSH
1256: LD_INT 4
1258: ST_TO_ADDR
// un = CreateHuman ;
1259: LD_ADDR_VAR 0 4
1263: PUSH
1264: CALL_OW 44
1268: ST_TO_ADDR
// PlaceHumanInUnit ( un , lab1 ) ;
1269: LD_VAR 0 4
1273: PPUSH
1274: LD_INT 278
1276: PPUSH
1277: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
1281: LD_ADDR_EXP 3
1285: PUSH
1286: LD_EXP 3
1290: PUSH
1291: LD_VAR 0 4
1295: ADD
1296: ST_TO_ADDR
// l = l + 1 ;
1297: LD_ADDR_VAR 0 9
1301: PUSH
1302: LD_VAR 0 9
1306: PUSH
1307: LD_INT 1
1309: PLUS
1310: ST_TO_ADDR
// end until l = 3 ;
1311: LD_VAR 0 9
1315: PUSH
1316: LD_INT 3
1318: EQUAL
1319: IFFALSE 1123
// end ; end ;
1321: GO 1072
1323: POP
1324: POP
// for i in lab2 do
1325: LD_ADDR_VAR 0 3
1329: PUSH
1330: LD_INT 283
1332: PUSH
1333: FOR_IN
1334: IFFALSE 1584
// begin ; l = 0 ;
1336: LD_ADDR_VAR 0 9
1340: PUSH
1341: LD_INT 0
1343: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1344: LD_VAR 0 3
1348: PPUSH
1349: CALL_OW 310
1353: PUSH
1354: LD_INT 0
1356: EQUAL
1357: IFFALSE 1582
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
1359: LD_ADDR_VAR 0 10
1363: PUSH
1364: LD_INT 4
1366: PUSH
1367: LD_INT 4
1369: PUSH
1370: LD_INT 4
1372: PUSH
1373: EMPTY
1374: LIST
1375: LIST
1376: LIST
1377: PUSH
1378: LD_OWVAR 67
1382: ARRAY
1383: ST_TO_ADDR
// repeat begin uc_side = 1 ;
1384: LD_ADDR_OWVAR 20
1388: PUSH
1389: LD_INT 1
1391: ST_TO_ADDR
// uc_nation = 1 ;
1392: LD_ADDR_OWVAR 21
1396: PUSH
1397: LD_INT 1
1399: ST_TO_ADDR
// hc_gallery =  ;
1400: LD_ADDR_OWVAR 33
1404: PUSH
1405: LD_STRING 
1407: ST_TO_ADDR
// hc_name =  ;
1408: LD_ADDR_OWVAR 26
1412: PUSH
1413: LD_STRING 
1415: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1416: LD_ADDR_OWVAR 29
1420: PUSH
1421: LD_INT 9
1423: PPUSH
1424: LD_INT 11
1426: PPUSH
1427: CALL_OW 12
1431: PUSH
1432: LD_INT 10
1434: PPUSH
1435: LD_INT 12
1437: PPUSH
1438: CALL_OW 12
1442: PUSH
1443: EMPTY
1444: LIST
1445: LIST
1446: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Rand ( 0 , 2 ) , Level ] ;
1447: LD_ADDR_OWVAR 31
1451: PUSH
1452: LD_INT 0
1454: PPUSH
1455: LD_INT 3
1457: PPUSH
1458: CALL_OW 12
1462: PUSH
1463: LD_INT 0
1465: PPUSH
1466: LD_INT 1
1468: PPUSH
1469: CALL_OW 12
1473: PUSH
1474: LD_INT 0
1476: PPUSH
1477: LD_INT 2
1479: PPUSH
1480: CALL_OW 12
1484: PUSH
1485: LD_VAR 0 10
1489: PUSH
1490: EMPTY
1491: LIST
1492: LIST
1493: LIST
1494: LIST
1495: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1496: LD_ADDR_OWVAR 27
1500: PUSH
1501: LD_INT 1
1503: PPUSH
1504: LD_INT 2
1506: PPUSH
1507: CALL_OW 12
1511: ST_TO_ADDR
// hc_class = 4 ;
1512: LD_ADDR_OWVAR 28
1516: PUSH
1517: LD_INT 4
1519: ST_TO_ADDR
// un = CreateHuman ;
1520: LD_ADDR_VAR 0 4
1524: PUSH
1525: CALL_OW 44
1529: ST_TO_ADDR
// PlaceHumanInUnit ( un , lab2 ) ;
1530: LD_VAR 0 4
1534: PPUSH
1535: LD_INT 283
1537: PPUSH
1538: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
1542: LD_ADDR_EXP 3
1546: PUSH
1547: LD_EXP 3
1551: PUSH
1552: LD_VAR 0 4
1556: ADD
1557: ST_TO_ADDR
// l = l + 1 ;
1558: LD_ADDR_VAR 0 9
1562: PUSH
1563: LD_VAR 0 9
1567: PUSH
1568: LD_INT 1
1570: PLUS
1571: ST_TO_ADDR
// end until l = 1 ;
1572: LD_VAR 0 9
1576: PUSH
1577: LD_INT 1
1579: EQUAL
1580: IFFALSE 1384
// end ; end ;
1582: GO 1333
1584: POP
1585: POP
// for i in lab3 do
1586: LD_ADDR_VAR 0 3
1590: PUSH
1591: LD_INT 381
1593: PUSH
1594: FOR_IN
1595: IFFALSE 1845
// begin l = 0 ;
1597: LD_ADDR_VAR 0 9
1601: PUSH
1602: LD_INT 0
1604: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1605: LD_VAR 0 3
1609: PPUSH
1610: CALL_OW 310
1614: PUSH
1615: LD_INT 0
1617: EQUAL
1618: IFFALSE 1843
// begin Level = [ 3 , 3 , 3 ] [ Difficulty ] ;
1620: LD_ADDR_VAR 0 10
1624: PUSH
1625: LD_INT 3
1627: PUSH
1628: LD_INT 3
1630: PUSH
1631: LD_INT 3
1633: PUSH
1634: EMPTY
1635: LIST
1636: LIST
1637: LIST
1638: PUSH
1639: LD_OWVAR 67
1643: ARRAY
1644: ST_TO_ADDR
// repeat begin uc_side = 4 ;
1645: LD_ADDR_OWVAR 20
1649: PUSH
1650: LD_INT 4
1652: ST_TO_ADDR
// uc_nation = 1 ;
1653: LD_ADDR_OWVAR 21
1657: PUSH
1658: LD_INT 1
1660: ST_TO_ADDR
// hc_gallery =  ;
1661: LD_ADDR_OWVAR 33
1665: PUSH
1666: LD_STRING 
1668: ST_TO_ADDR
// hc_name =  ;
1669: LD_ADDR_OWVAR 26
1673: PUSH
1674: LD_STRING 
1676: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1677: LD_ADDR_OWVAR 29
1681: PUSH
1682: LD_INT 9
1684: PPUSH
1685: LD_INT 11
1687: PPUSH
1688: CALL_OW 12
1692: PUSH
1693: LD_INT 10
1695: PPUSH
1696: LD_INT 12
1698: PPUSH
1699: CALL_OW 12
1703: PUSH
1704: EMPTY
1705: LIST
1706: LIST
1707: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Rand ( 0 , 2 ) , Level ] ;
1708: LD_ADDR_OWVAR 31
1712: PUSH
1713: LD_INT 0
1715: PPUSH
1716: LD_INT 3
1718: PPUSH
1719: CALL_OW 12
1723: PUSH
1724: LD_INT 0
1726: PPUSH
1727: LD_INT 1
1729: PPUSH
1730: CALL_OW 12
1734: PUSH
1735: LD_INT 0
1737: PPUSH
1738: LD_INT 2
1740: PPUSH
1741: CALL_OW 12
1745: PUSH
1746: LD_VAR 0 10
1750: PUSH
1751: EMPTY
1752: LIST
1753: LIST
1754: LIST
1755: LIST
1756: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1757: LD_ADDR_OWVAR 27
1761: PUSH
1762: LD_INT 1
1764: PPUSH
1765: LD_INT 2
1767: PPUSH
1768: CALL_OW 12
1772: ST_TO_ADDR
// hc_class = 4 ;
1773: LD_ADDR_OWVAR 28
1777: PUSH
1778: LD_INT 4
1780: ST_TO_ADDR
// un = CreateHuman ;
1781: LD_ADDR_VAR 0 4
1785: PUSH
1786: CALL_OW 44
1790: ST_TO_ADDR
// PlaceHumanInUnit ( un , lab3 ) ;
1791: LD_VAR 0 4
1795: PPUSH
1796: LD_INT 381
1798: PPUSH
1799: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
1803: LD_ADDR_EXP 3
1807: PUSH
1808: LD_EXP 3
1812: PUSH
1813: LD_VAR 0 4
1817: ADD
1818: ST_TO_ADDR
// l = l + 1 ;
1819: LD_ADDR_VAR 0 9
1823: PUSH
1824: LD_VAR 0 9
1828: PUSH
1829: LD_INT 1
1831: PLUS
1832: ST_TO_ADDR
// end until l = 2 ;
1833: LD_VAR 0 9
1837: PUSH
1838: LD_INT 2
1840: EQUAL
1841: IFFALSE 1645
// end ; end ;
1843: GO 1594
1845: POP
1846: POP
// for i in lab4 do
1847: LD_ADDR_VAR 0 3
1851: PUSH
1852: LD_INT 388
1854: PUSH
1855: FOR_IN
1856: IFFALSE 2106
// begin l = 0 ;
1858: LD_ADDR_VAR 0 9
1862: PUSH
1863: LD_INT 0
1865: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1866: LD_VAR 0 3
1870: PPUSH
1871: CALL_OW 310
1875: PUSH
1876: LD_INT 0
1878: EQUAL
1879: IFFALSE 2104
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
1881: LD_ADDR_VAR 0 10
1885: PUSH
1886: LD_INT 4
1888: PUSH
1889: LD_INT 4
1891: PUSH
1892: LD_INT 4
1894: PUSH
1895: EMPTY
1896: LIST
1897: LIST
1898: LIST
1899: PUSH
1900: LD_OWVAR 67
1904: ARRAY
1905: ST_TO_ADDR
// repeat begin uc_side = 4 ;
1906: LD_ADDR_OWVAR 20
1910: PUSH
1911: LD_INT 4
1913: ST_TO_ADDR
// uc_nation = 1 ;
1914: LD_ADDR_OWVAR 21
1918: PUSH
1919: LD_INT 1
1921: ST_TO_ADDR
// hc_gallery =  ;
1922: LD_ADDR_OWVAR 33
1926: PUSH
1927: LD_STRING 
1929: ST_TO_ADDR
// hc_name =  ;
1930: LD_ADDR_OWVAR 26
1934: PUSH
1935: LD_STRING 
1937: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1938: LD_ADDR_OWVAR 29
1942: PUSH
1943: LD_INT 9
1945: PPUSH
1946: LD_INT 11
1948: PPUSH
1949: CALL_OW 12
1953: PUSH
1954: LD_INT 10
1956: PPUSH
1957: LD_INT 12
1959: PPUSH
1960: CALL_OW 12
1964: PUSH
1965: EMPTY
1966: LIST
1967: LIST
1968: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Rand ( 0 , 2 ) , Level ] ;
1969: LD_ADDR_OWVAR 31
1973: PUSH
1974: LD_INT 0
1976: PPUSH
1977: LD_INT 3
1979: PPUSH
1980: CALL_OW 12
1984: PUSH
1985: LD_INT 0
1987: PPUSH
1988: LD_INT 1
1990: PPUSH
1991: CALL_OW 12
1995: PUSH
1996: LD_INT 0
1998: PPUSH
1999: LD_INT 2
2001: PPUSH
2002: CALL_OW 12
2006: PUSH
2007: LD_VAR 0 10
2011: PUSH
2012: EMPTY
2013: LIST
2014: LIST
2015: LIST
2016: LIST
2017: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2018: LD_ADDR_OWVAR 27
2022: PUSH
2023: LD_INT 1
2025: PPUSH
2026: LD_INT 2
2028: PPUSH
2029: CALL_OW 12
2033: ST_TO_ADDR
// hc_class = 4 ;
2034: LD_ADDR_OWVAR 28
2038: PUSH
2039: LD_INT 4
2041: ST_TO_ADDR
// un = CreateHuman ;
2042: LD_ADDR_VAR 0 4
2046: PUSH
2047: CALL_OW 44
2051: ST_TO_ADDR
// PlaceHumanInUnit ( un , lab4 ) ;
2052: LD_VAR 0 4
2056: PPUSH
2057: LD_INT 388
2059: PPUSH
2060: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2064: LD_ADDR_EXP 3
2068: PUSH
2069: LD_EXP 3
2073: PUSH
2074: LD_VAR 0 4
2078: ADD
2079: ST_TO_ADDR
// l = l + 1 ;
2080: LD_ADDR_VAR 0 9
2084: PUSH
2085: LD_VAR 0 9
2089: PUSH
2090: LD_INT 1
2092: PLUS
2093: ST_TO_ADDR
// end until l = 2 ;
2094: LD_VAR 0 9
2098: PUSH
2099: LD_INT 2
2101: EQUAL
2102: IFFALSE 1906
// end ; end ;
2104: GO 1855
2106: POP
2107: POP
// for i in kosze1 do
2108: LD_ADDR_VAR 0 3
2112: PUSH
2113: LD_INT 306
2115: PUSH
2116: FOR_IN
2117: IFFALSE 2367
// begin l = 0 ;
2119: LD_ADDR_VAR 0 9
2123: PUSH
2124: LD_INT 0
2126: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2127: LD_VAR 0 3
2131: PPUSH
2132: CALL_OW 310
2136: PUSH
2137: LD_INT 0
2139: EQUAL
2140: IFFALSE 2365
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2142: LD_ADDR_VAR 0 10
2146: PUSH
2147: LD_INT 4
2149: PUSH
2150: LD_INT 4
2152: PUSH
2153: LD_INT 4
2155: PUSH
2156: EMPTY
2157: LIST
2158: LIST
2159: LIST
2160: PUSH
2161: LD_OWVAR 67
2165: ARRAY
2166: ST_TO_ADDR
// repeat begin uc_side = 4 ;
2167: LD_ADDR_OWVAR 20
2171: PUSH
2172: LD_INT 4
2174: ST_TO_ADDR
// uc_nation = 1 ;
2175: LD_ADDR_OWVAR 21
2179: PUSH
2180: LD_INT 1
2182: ST_TO_ADDR
// hc_gallery =  ;
2183: LD_ADDR_OWVAR 33
2187: PUSH
2188: LD_STRING 
2190: ST_TO_ADDR
// hc_name =  ;
2191: LD_ADDR_OWVAR 26
2195: PUSH
2196: LD_STRING 
2198: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2199: LD_ADDR_OWVAR 29
2203: PUSH
2204: LD_INT 9
2206: PPUSH
2207: LD_INT 11
2209: PPUSH
2210: CALL_OW 12
2214: PUSH
2215: LD_INT 10
2217: PPUSH
2218: LD_INT 12
2220: PPUSH
2221: CALL_OW 12
2225: PUSH
2226: EMPTY
2227: LIST
2228: LIST
2229: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 0 , 1 ) , Rand ( 0 , 2 ) , Rand ( 0 , 1 ) ] ;
2230: LD_ADDR_OWVAR 31
2234: PUSH
2235: LD_VAR 0 10
2239: PUSH
2240: LD_INT 0
2242: PPUSH
2243: LD_INT 1
2245: PPUSH
2246: CALL_OW 12
2250: PUSH
2251: LD_INT 0
2253: PPUSH
2254: LD_INT 2
2256: PPUSH
2257: CALL_OW 12
2261: PUSH
2262: LD_INT 0
2264: PPUSH
2265: LD_INT 1
2267: PPUSH
2268: CALL_OW 12
2272: PUSH
2273: EMPTY
2274: LIST
2275: LIST
2276: LIST
2277: LIST
2278: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2279: LD_ADDR_OWVAR 27
2283: PUSH
2284: LD_INT 1
2286: PPUSH
2287: LD_INT 2
2289: PPUSH
2290: CALL_OW 12
2294: ST_TO_ADDR
// hc_class = 1 ;
2295: LD_ADDR_OWVAR 28
2299: PUSH
2300: LD_INT 1
2302: ST_TO_ADDR
// un = CreateHuman ;
2303: LD_ADDR_VAR 0 4
2307: PUSH
2308: CALL_OW 44
2312: ST_TO_ADDR
// PlaceHumanInUnit ( un , kosze1 ) ;
2313: LD_VAR 0 4
2317: PPUSH
2318: LD_INT 306
2320: PPUSH
2321: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2325: LD_ADDR_EXP 3
2329: PUSH
2330: LD_EXP 3
2334: PUSH
2335: LD_VAR 0 4
2339: ADD
2340: ST_TO_ADDR
// l = l + 1 ;
2341: LD_ADDR_VAR 0 9
2345: PUSH
2346: LD_VAR 0 9
2350: PUSH
2351: LD_INT 1
2353: PLUS
2354: ST_TO_ADDR
// end until l = 3 ;
2355: LD_VAR 0 9
2359: PUSH
2360: LD_INT 3
2362: EQUAL
2363: IFFALSE 2167
// end ; end ;
2365: GO 2116
2367: POP
2368: POP
// for i in kosze2 do
2369: LD_ADDR_VAR 0 3
2373: PUSH
2374: LD_INT 270
2376: PUSH
2377: FOR_IN
2378: IFFALSE 2628
// begin l = 0 ;
2380: LD_ADDR_VAR 0 9
2384: PUSH
2385: LD_INT 0
2387: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2388: LD_VAR 0 3
2392: PPUSH
2393: CALL_OW 310
2397: PUSH
2398: LD_INT 0
2400: EQUAL
2401: IFFALSE 2626
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2403: LD_ADDR_VAR 0 10
2407: PUSH
2408: LD_INT 4
2410: PUSH
2411: LD_INT 4
2413: PUSH
2414: LD_INT 4
2416: PUSH
2417: EMPTY
2418: LIST
2419: LIST
2420: LIST
2421: PUSH
2422: LD_OWVAR 67
2426: ARRAY
2427: ST_TO_ADDR
// repeat begin uc_side = 1 ;
2428: LD_ADDR_OWVAR 20
2432: PUSH
2433: LD_INT 1
2435: ST_TO_ADDR
// uc_nation = 1 ;
2436: LD_ADDR_OWVAR 21
2440: PUSH
2441: LD_INT 1
2443: ST_TO_ADDR
// hc_gallery =  ;
2444: LD_ADDR_OWVAR 33
2448: PUSH
2449: LD_STRING 
2451: ST_TO_ADDR
// hc_name =  ;
2452: LD_ADDR_OWVAR 26
2456: PUSH
2457: LD_STRING 
2459: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2460: LD_ADDR_OWVAR 29
2464: PUSH
2465: LD_INT 9
2467: PPUSH
2468: LD_INT 11
2470: PPUSH
2471: CALL_OW 12
2475: PUSH
2476: LD_INT 10
2478: PPUSH
2479: LD_INT 12
2481: PPUSH
2482: CALL_OW 12
2486: PUSH
2487: EMPTY
2488: LIST
2489: LIST
2490: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 0 , 1 ) , Rand ( 0 , 2 ) , Rand ( 0 , 1 ) ] ;
2491: LD_ADDR_OWVAR 31
2495: PUSH
2496: LD_VAR 0 10
2500: PUSH
2501: LD_INT 0
2503: PPUSH
2504: LD_INT 1
2506: PPUSH
2507: CALL_OW 12
2511: PUSH
2512: LD_INT 0
2514: PPUSH
2515: LD_INT 2
2517: PPUSH
2518: CALL_OW 12
2522: PUSH
2523: LD_INT 0
2525: PPUSH
2526: LD_INT 1
2528: PPUSH
2529: CALL_OW 12
2533: PUSH
2534: EMPTY
2535: LIST
2536: LIST
2537: LIST
2538: LIST
2539: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2540: LD_ADDR_OWVAR 27
2544: PUSH
2545: LD_INT 1
2547: PPUSH
2548: LD_INT 2
2550: PPUSH
2551: CALL_OW 12
2555: ST_TO_ADDR
// hc_class = 1 ;
2556: LD_ADDR_OWVAR 28
2560: PUSH
2561: LD_INT 1
2563: ST_TO_ADDR
// un = CreateHuman ;
2564: LD_ADDR_VAR 0 4
2568: PUSH
2569: CALL_OW 44
2573: ST_TO_ADDR
// PlaceHumanInUnit ( un , kosze2 ) ;
2574: LD_VAR 0 4
2578: PPUSH
2579: LD_INT 270
2581: PPUSH
2582: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2586: LD_ADDR_EXP 3
2590: PUSH
2591: LD_EXP 3
2595: PUSH
2596: LD_VAR 0 4
2600: ADD
2601: ST_TO_ADDR
// l = l + 1 ;
2602: LD_ADDR_VAR 0 9
2606: PUSH
2607: LD_VAR 0 9
2611: PUSH
2612: LD_INT 1
2614: PLUS
2615: ST_TO_ADDR
// end until l = 3 ;
2616: LD_VAR 0 9
2620: PUSH
2621: LD_INT 3
2623: EQUAL
2624: IFFALSE 2428
// end ; end ;
2626: GO 2377
2628: POP
2629: POP
// for i in sklad1 do
2630: LD_ADDR_VAR 0 3
2634: PUSH
2635: LD_INT 305
2637: PUSH
2638: FOR_IN
2639: IFFALSE 2889
// begin l = 0 ;
2641: LD_ADDR_VAR 0 9
2645: PUSH
2646: LD_INT 0
2648: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2649: LD_VAR 0 3
2653: PPUSH
2654: CALL_OW 310
2658: PUSH
2659: LD_INT 0
2661: EQUAL
2662: IFFALSE 2887
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2664: LD_ADDR_VAR 0 10
2668: PUSH
2669: LD_INT 4
2671: PUSH
2672: LD_INT 4
2674: PUSH
2675: LD_INT 4
2677: PUSH
2678: EMPTY
2679: LIST
2680: LIST
2681: LIST
2682: PUSH
2683: LD_OWVAR 67
2687: ARRAY
2688: ST_TO_ADDR
// repeat begin uc_side = 4 ;
2689: LD_ADDR_OWVAR 20
2693: PUSH
2694: LD_INT 4
2696: ST_TO_ADDR
// uc_nation = 1 ;
2697: LD_ADDR_OWVAR 21
2701: PUSH
2702: LD_INT 1
2704: ST_TO_ADDR
// hc_gallery =  ;
2705: LD_ADDR_OWVAR 33
2709: PUSH
2710: LD_STRING 
2712: ST_TO_ADDR
// hc_name =  ;
2713: LD_ADDR_OWVAR 26
2717: PUSH
2718: LD_STRING 
2720: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2721: LD_ADDR_OWVAR 29
2725: PUSH
2726: LD_INT 9
2728: PPUSH
2729: LD_INT 11
2731: PPUSH
2732: CALL_OW 12
2736: PUSH
2737: LD_INT 10
2739: PPUSH
2740: LD_INT 12
2742: PPUSH
2743: CALL_OW 12
2747: PUSH
2748: EMPTY
2749: LIST
2750: LIST
2751: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 2 ) , Level , Rand ( 0 , 2 ) , Rand ( 0 , 1 ) ] ;
2752: LD_ADDR_OWVAR 31
2756: PUSH
2757: LD_INT 0
2759: PPUSH
2760: LD_INT 2
2762: PPUSH
2763: CALL_OW 12
2767: PUSH
2768: LD_VAR 0 10
2772: PUSH
2773: LD_INT 0
2775: PPUSH
2776: LD_INT 2
2778: PPUSH
2779: CALL_OW 12
2783: PUSH
2784: LD_INT 0
2786: PPUSH
2787: LD_INT 1
2789: PPUSH
2790: CALL_OW 12
2794: PUSH
2795: EMPTY
2796: LIST
2797: LIST
2798: LIST
2799: LIST
2800: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2801: LD_ADDR_OWVAR 27
2805: PUSH
2806: LD_INT 1
2808: PPUSH
2809: LD_INT 2
2811: PPUSH
2812: CALL_OW 12
2816: ST_TO_ADDR
// hc_class = 2 ;
2817: LD_ADDR_OWVAR 28
2821: PUSH
2822: LD_INT 2
2824: ST_TO_ADDR
// un = CreateHuman ;
2825: LD_ADDR_VAR 0 4
2829: PUSH
2830: CALL_OW 44
2834: ST_TO_ADDR
// PlaceHumanInUnit ( un , sklad1 ) ;
2835: LD_VAR 0 4
2839: PPUSH
2840: LD_INT 305
2842: PPUSH
2843: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2847: LD_ADDR_EXP 3
2851: PUSH
2852: LD_EXP 3
2856: PUSH
2857: LD_VAR 0 4
2861: ADD
2862: ST_TO_ADDR
// l = l + 1 ;
2863: LD_ADDR_VAR 0 9
2867: PUSH
2868: LD_VAR 0 9
2872: PUSH
2873: LD_INT 1
2875: PLUS
2876: ST_TO_ADDR
// end until l = 2 ;
2877: LD_VAR 0 9
2881: PUSH
2882: LD_INT 2
2884: EQUAL
2885: IFFALSE 2689
// end ; end ;
2887: GO 2638
2889: POP
2890: POP
// for i in sklad2 do
2891: LD_ADDR_VAR 0 3
2895: PUSH
2896: LD_INT 218
2898: PUSH
2899: FOR_IN
2900: IFFALSE 3150
// begin l = 0 ;
2902: LD_ADDR_VAR 0 9
2906: PUSH
2907: LD_INT 0
2909: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2910: LD_VAR 0 3
2914: PPUSH
2915: CALL_OW 310
2919: PUSH
2920: LD_INT 0
2922: EQUAL
2923: IFFALSE 3148
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2925: LD_ADDR_VAR 0 10
2929: PUSH
2930: LD_INT 4
2932: PUSH
2933: LD_INT 4
2935: PUSH
2936: LD_INT 4
2938: PUSH
2939: EMPTY
2940: LIST
2941: LIST
2942: LIST
2943: PUSH
2944: LD_OWVAR 67
2948: ARRAY
2949: ST_TO_ADDR
// repeat begin uc_side = 1 ;
2950: LD_ADDR_OWVAR 20
2954: PUSH
2955: LD_INT 1
2957: ST_TO_ADDR
// uc_nation = 1 ;
2958: LD_ADDR_OWVAR 21
2962: PUSH
2963: LD_INT 1
2965: ST_TO_ADDR
// hc_gallery =  ;
2966: LD_ADDR_OWVAR 33
2970: PUSH
2971: LD_STRING 
2973: ST_TO_ADDR
// hc_name =  ;
2974: LD_ADDR_OWVAR 26
2978: PUSH
2979: LD_STRING 
2981: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2982: LD_ADDR_OWVAR 29
2986: PUSH
2987: LD_INT 9
2989: PPUSH
2990: LD_INT 11
2992: PPUSH
2993: CALL_OW 12
2997: PUSH
2998: LD_INT 10
3000: PPUSH
3001: LD_INT 12
3003: PPUSH
3004: CALL_OW 12
3008: PUSH
3009: EMPTY
3010: LIST
3011: LIST
3012: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 1 ) , Level , Rand ( 0 , 2 ) , Rand ( 0 , 1 ) ] ;
3013: LD_ADDR_OWVAR 31
3017: PUSH
3018: LD_INT 0
3020: PPUSH
3021: LD_INT 1
3023: PPUSH
3024: CALL_OW 12
3028: PUSH
3029: LD_VAR 0 10
3033: PUSH
3034: LD_INT 0
3036: PPUSH
3037: LD_INT 2
3039: PPUSH
3040: CALL_OW 12
3044: PUSH
3045: LD_INT 0
3047: PPUSH
3048: LD_INT 1
3050: PPUSH
3051: CALL_OW 12
3055: PUSH
3056: EMPTY
3057: LIST
3058: LIST
3059: LIST
3060: LIST
3061: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3062: LD_ADDR_OWVAR 27
3066: PUSH
3067: LD_INT 1
3069: PPUSH
3070: LD_INT 2
3072: PPUSH
3073: CALL_OW 12
3077: ST_TO_ADDR
// hc_class = 2 ;
3078: LD_ADDR_OWVAR 28
3082: PUSH
3083: LD_INT 2
3085: ST_TO_ADDR
// un = CreateHuman ;
3086: LD_ADDR_VAR 0 4
3090: PUSH
3091: CALL_OW 44
3095: ST_TO_ADDR
// PlaceHumanInUnit ( un , sklad2 ) ;
3096: LD_VAR 0 4
3100: PPUSH
3101: LD_INT 218
3103: PPUSH
3104: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
3108: LD_ADDR_EXP 3
3112: PUSH
3113: LD_EXP 3
3117: PUSH
3118: LD_VAR 0 4
3122: ADD
3123: ST_TO_ADDR
// l = l + 1 ;
3124: LD_ADDR_VAR 0 9
3128: PUSH
3129: LD_VAR 0 9
3133: PUSH
3134: LD_INT 1
3136: PLUS
3137: ST_TO_ADDR
// end until l = 2 ;
3138: LD_VAR 0 9
3142: PUSH
3143: LD_INT 2
3145: EQUAL
3146: IFFALSE 2950
// end ; end ;
3148: GO 2899
3150: POP
3151: POP
// end ; end_of_file
3152: LD_VAR 0 1
3156: RET
// export OWChyba ; export function PrepareHero1 ; begin
3157: LD_INT 0
3159: PPUSH
// uc_side = 4 ;
3160: LD_ADDR_OWVAR 20
3164: PUSH
3165: LD_INT 4
3167: ST_TO_ADDR
// uc_nation = 1 ;
3168: LD_ADDR_OWVAR 21
3172: PUSH
3173: LD_INT 1
3175: ST_TO_ADDR
// OWCHyba := CreateCharacter ( OWChyba ) ;
3176: LD_ADDR_EXP 6
3180: PUSH
3181: LD_STRING OWChyba
3183: PPUSH
3184: CALL_OW 34
3188: ST_TO_ADDR
// PlaceUnitArea ( OWChyba , POSTAC , false ) ;
3189: LD_EXP 6
3193: PPUSH
3194: LD_INT 7
3196: PPUSH
3197: LD_INT 0
3199: PPUSH
3200: CALL_OW 49
// end ; end_of_file
3204: LD_VAR 0 1
3208: RET
// export Center ; every 0 0$1 trigger Center = 1 do
3209: LD_EXP 7
3213: PUSH
3214: LD_INT 1
3216: EQUAL
3217: IFFALSE 3239
3219: GO 3221
3221: DISABLE
// begin ; CenterNowOnUnits ( OWChyba ) ;
3222: LD_EXP 6
3226: PPUSH
3227: CALL_OW 87
// CenterNowOnUnits ( f1 ) ;
3231: LD_INT 447
3233: PPUSH
3234: CALL_OW 87
// enable ;
3238: ENABLE
// end ; end_of_file
3239: END
// export function ResAllTechs ( side , lab ) ; var i , tech , cout ; begin
3240: LD_INT 0
3242: PPUSH
3243: PPUSH
3244: PPUSH
3245: PPUSH
// for i = 1 to 15 do
3246: LD_ADDR_VAR 0 4
3250: PUSH
3251: DOUBLE
3252: LD_INT 1
3254: DEC
3255: ST_TO_ADDR
3256: LD_INT 15
3258: PUSH
3259: FOR_TO
3260: IFFALSE 3298
// begin if GetTech ( i , side ) = state_enabled then
3262: LD_VAR 0 4
3266: PPUSH
3267: LD_VAR 0 1
3271: PPUSH
3272: CALL_OW 321
3276: PUSH
3277: LD_INT 1
3279: EQUAL
3280: IFFALSE 3296
// AddComResearch ( lab , i ) ;
3282: LD_VAR 0 2
3286: PPUSH
3287: LD_VAR 0 4
3291: PPUSH
3292: CALL_OW 184
// end ;
3296: GO 3259
3298: POP
3299: POP
// cout = cout + 1 ;
3300: LD_ADDR_VAR 0 6
3304: PUSH
3305: LD_VAR 0 6
3309: PUSH
3310: LD_INT 1
3312: PLUS
3313: ST_TO_ADDR
// end ;
3314: LD_VAR 0 3
3318: RET
